سطح دسترسی در لینوکس مثل قفل درب یک ساختمان است. هر فایل و دایرکتوری سه نوع کاربر دارد: مالک، گروه و دیگران. هرکدام میتوانند مجوزهای خواندن، نوشتن و اجرا داشته باشند.
هر فایل و دایرکتوری در لینوکس دارای سه نوع دسترسی برای سه گروه کاربری است:
هر کدام از این گروهها میتوانند سه نوع مجوز داشته باشند:
ls -l:
توضیح:
- = فایل معمولی، d = دایرکتوری، l = لینک)rwx)r-x)r--)ls -l| کد | توضیح |
|---|---|
- |
فایل معمولی (متن، باینری، تصویر و ...) |
d |
دایرکتوری |
l |
لینک سمبلیک (Soft Link) |
p |
Named Pipe (برای ارتباط بین پردازشها) |
s |
Socket (ارتباط شبکهای) |
b |
Block Device (مانند دیسک) |
c |
Character Device (مانند دستگاههای سریال) |
chmodتوضیح:
u+x → افزودن مجوز اجرا برای مالک (User)go-r → حذف مجوز خواندن برای گروه و دیگران (Group, Others)
هر مجوز یک عدد دارد: r=4، w=2، x=1
توضیح: 755 یعنی:
7 → rwx (خواندن، نوشتن، اجرا)5 → r-x (خواندن، اجرا)5 → r-x (خواندن، اجرا)| مقدار | مجوز | معنی |
|---|---|---|
| 0 | --- |
بدون دسترسی |
| 1 | --x |
فقط اجرا |
| 2 | -w- |
فقط نوشتن |
| 3 | -wx |
نوشتن و اجرا |
| 4 | r-- |
فقط خواندن |
| 5 | r-x |
خواندن و اجرا |
| 6 | rw- |
خواندن و نوشتن |
| 7 | rwx |
خواندن، نوشتن و اجرا |
chown (Change Owner)
توضیح: chown مالک و گروه فایل را تغییر میدهد (نیاز به دسترسی root).
chgrp (Change Group)توضیح: فقط گروه فایل را تغییر میدهد.
وقتی SUID روی یک فایل اجرایی تنظیم شود، برنامه با مجوزهای مالک اجرا میشود، نه کاربری که آن را اجرا کرده است.
توضیح: s در جای مجوز اجرای مالک نشاندهنده SUID است. passwd با مجوز root اجرا میشود تا بتواند فایل /etc/shadow را تغییر دهد.
توضیح: هر دو روش SUID را روی فایل myapp فعال میکنند. عدد 4 قبل از مجوزهای معمولی نشاندهنده SUID است.
روی فایلهای اجرایی: برنامه با مجوزهای گروه فایل اجرا میشود.
روی دایرکتوریها: فایلهای ایجاد شده گروه دایرکتوری را به ارث میبرند.
توضیح: عدد 2 قبل از مجوزها نشاندهنده SGID است.
روی دایرکتوریها: فقط مالک فایل میتواند آن را حذف کند (حتی اگر دیگران مجوز نوشتن داشته باشند).
/tmp:
توضیح: t در انتهای مجوزها نشاندهنده Sticky Bit است. هر کاربر میتواند در /tmp فایل بسازد، اما فقط خودش میتواند فایل خود را حذف کند.
توضیح: عدد 1 قبل از مجوزها نشاندهنده Sticky Bit است.
مجوزهای ویژه (SUID, SGID, Sticky Bit) میتوانند خطرات امنیتی ایجاد کنند. فقط در صورت نیاز و با آگاهی کامل از آنها استفاده کنید.
umask
umask مجوزهای پیشفرض فایلها و دایرکتوریهای جدید را تعیین میکند.
توضیح: umask 027 یعنی فایلهای جدید با مجوز 640 و دایرکتوریهای جدید با مجوز 750 ایجاد میشوند.
umask:
umask |
مجوز فایل | مجوز دایرکتوری |
|---|---|---|
| 000 | 666 (rw-rw-rw-) |
777 (rwxrwxrwx) |
| 002 | 664 (rw-rw-r--) |
775 (rwxrwxr-x) |
| 022 | 644 (rw-r--r--) |
755 (rwxr-xr-x) |
| 027 | 640 (rw-r-----) |
750 (rwxr-x---) |
| 077 | 600 (rw-------) |
700 (rwx------) |
ls -l مجوزهای آن را ببینید.chmod 755 مجوزهای فایل را تغییر دهید.chown مالک فایل را تغییر دهید (با sudo).chmod u+s SUID را روی یک فایل تست فعال کنید.umask مجوزهای پیشفرض را تغییر دهید و یک فایل جدید بسازید.